function AJAX(options) {
  // 设置默认值
  let defaults = {
    type: "get",
    url: '',
    data: {

    },
    header: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    success: function () {

    },
    error: function () {

    }
  };
  // 使用options对象中的属性覆盖defaults对象中的属性
  Object.assign(defaults, options);

  let xhr = new XMLHttpRequest();
  //1.处理参数的url
  let params = '';
  // 拼接url的get请求方式：参数名称=参数值&参数名称=参数值
  for (item in defaults.data) {
    params += item + "=" + defaults.data[item] + "&";
  };
  params = params.substring(0, params.length - 1);
  // console.log(params);
  // 2.判断ajax提交的方式
  if (defaults.type === "post") {
    xhr.open(defaults.type, defaults.url);
    // 设置请求报文
    let contentType = defaults.header['Content-Type'];
    console.log(contentType);
    xhr.setRequestHeader('Content-Type', contentType);
    if (contentType == "application/json") {
      //发送的是JSON格式的字符串
      xhr.send(JSON.stringify(defaults.data));
    } else {
      // 发送的是params的字符串
      xhr.send(params);
    }
  } else {
    xhr.open(defaults.type, defaults.url + "?" + params);
    xhr.send();
  }

  xhr.onload = function () {
    // 获取响应头的数据
    let contentType = xhr.getResponseHeader('Content-type');

    // 服务器返回的数据
    let responseText = xhr.responseText;
    // 如果响应数据中包含application/json
    if (contentType.includes('application/json')) {
      //将JSON字符串转换为JSON对象
      responseText = JSON.parse(responseText);
    }
    //ajax传输成功，将response返回给success函数
    if (xhr.status === 200) {
      defaults.success(responseText, xhr)
    } else {
      defaults.error(responseText, xhr)
    }
  }
}